package com.qf.automation.sms.contorller;

import com.qf.automation.sms.service.SMSService;
import com.qf.base.result.R;
import com.qf.base.sms.dto.SendSMSDTO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@RequestMapping("/sms")
public class SMSController {

    @Resource
    private SMSService smsService;
//    根据用户输入的手机号和验证码发送短信，其中发送的短信前要判断数据库是否有数据，再判断这个信息是否超时，如果超时那就重新发送，然后更新数据库
//    如果数据库没有就插入新的数据
    @PostMapping("/send")
    public R sendSMS(@RequestBody SendSMSDTO sendSMSDTO){
        String phoneNo=sendSMSDTO.getPhoneNo();
        String code =sendSMSDTO.getCode();
       boolean result=smsService.send(phoneNo,code);//校验短信时间，如果没有过期或者重新发送了那就返回true
       if(result){
           return R.ok(200,"短信发送成功");
       }else{
           return R.error(501,"短信发送失败");
        }
    }
//  根据用户发送的手机号和验证码匹配数据库，看与数据库的消息是否相同，如果超时返回2，如果错误返回1,如果正确返回0，如果不是这三种就是异常错误
    @PostMapping("/check")
    public R checkSMS(@RequestBody SendSMSDTO sendSMSDTO){
        String phoneNo=sendSMSDTO.getPhoneNo();
        String code =sendSMSDTO.getCode();
        int result=smsService.check(phoneNo,code);
        if(result==0){
            return R.ok(200,"验证成功");
        }else if(result==1){
            return R.error(501,"验证失败");
        }else if(result==2){
            return R.error(502,"验证码已经失效");
        }else{
            return R.error(500,"未知异常");
        }
    }

}
